package org.example.friend_test.service;

import org.example.friend_test.entity.Friend;
import java.util.List;

/**
 * 朋友服务接口
 */
public interface FriendService {
    
    /**
     * 查找指定用户的所有朋友
     * 
     * @param userId 用户ID
     * @return 朋友列表
     */
    List<Friend> findAllFriendsByUserId(Long userId);
    
    /**
     * 查找所有朋友（兼容旧版本）
     * 
     * @return 朋友列表
     */
    List<Friend> findAllFriends();
    
    /**
     * 根据ID查找朋友
     * 
     * @param id 朋友ID
     * @param userId 用户ID（用于验证权限）
     * @return 朋友对象
     */
    Friend findFriendById(Long id, Long userId);
    
    /**
     * 根据姓名查找朋友
     * 
     * @param name 姓名
     * @param userId 用户ID
     * @return 朋友列表
     */
    List<Friend> findFriendsByName(String name, Long userId);
    
    /**
     * 根据关系查找朋友
     * 
     * @param relationship 关系
     * @param userId 用户ID
     * @return 朋友列表
     */
    List<Friend> findFriendsByRelationship(String relationship, Long userId);
    
    /**
     * 创建新朋友
     * 
     * @param friend 朋友对象
     * @param userId 用户ID
     * @return 创建的朋友对象
     */
    Friend createFriend(Friend friend, Long userId);
    
    /**
     * 更新朋友信息
     * 
     * @param friend 朋友对象
     * @param userId 用户ID（用于验证权限）
     * @return 更新后的朋友对象
     */
    Friend updateFriend(Friend friend, Long userId);
    
    /**
     * 删除朋友
     * 
     * @param id 朋友ID
     * @param userId 用户ID（用于验证权限）
     * @return 是否删除成功
     */
    boolean deleteFriend(Long id, Long userId);
}
